home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / pretty19.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  55KB  |  2,425 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "pretty.h"
  9. /*No:LOOP_VARIANT_2.nb_errors*/
  10. /*No:LOOP_VARIANT_2.tag*/
  11.  
  12.  
  13. T0* r229start_position(T229* C){
  14. T0* R=NULL;
  15. R=X89start_position((C)->_expression/*8*/);
  16. return R;
  17. }
  18.  
  19.  
  20. T0* r229twin(T229* C){
  21. T0* R=NULL;
  22. R=malloc(sizeof(*C));
  23. *((T229*)R)=*C;
  24. return R;
  25. }
  26. /*No:LOOP_VARIANT_2.expression*/
  27.  
  28.  
  29. T0* r229to_runnable(T229* C,T0* a1){
  30. T0* R=NULL;
  31. T0* _e=NULL;
  32. /*[IF*/
  33. if(((C)->_current_type/*12*/)==((void*)(NULL))){
  34. C->_current_type=a1;
  35. _e=X89to_runnable((C)->_expression/*8*/,a1);
  36. /*[IF*/
  37. if((_e)==((void*)(NULL))){
  38. r229error(r229start_position(C),((T0*)ms226_20400));
  39. }
  40. else{
  41. C->_expression=_e;
  42. /*[IF*/
  43. if(!(X62is_integer(X89result_type((C)->_expression/*8*/)))){
  44. r229error(X89start_position((C)->_expression/*8*/),((T0*)ms226_86602));
  45. }
  46. /*FI]*/
  47. }
  48. /*FI]*/
  49. /*[IF*/
  50. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  51. R=(T0*)C;
  52. }
  53. /*FI]*/
  54. }
  55. else{
  56. R=r229twin(C);
  57. /*[IRF3.3set_current_type*/((((T229*)(((T229*)R))))->_current_type)=(NULL);
  58. /*]*/
  59. R=r229to_runnable(((T229*)R),a1);
  60. }
  61. /*FI]*/
  62. return R;
  63. }
  64. /*No:LOOP_VARIANT_2.set_current_type*/
  65. /*No:LOOP_VARIANT_2.current_type*/
  66.  
  67.  
  68. void r229error(T0* a1,T0* a2){
  69. r37add_position(a1);
  70. r37error((T37*)(oBC11eh),a2);
  71. }
  72.  
  73.  
  74. void r229make(T229* C,T0* a1,T0* a2,T0* a3){
  75. C->_comment=a3;
  76. C->_tag=a1;
  77. C->_expression=a2;
  78. }
  79.  
  80.  
  81. void r229pretty_print(T229* C){
  82. /*[IF*/
  83. if(((C)->_comment/*4*/)!=((void*)(NULL))){
  84. r64pretty_print((T64*)((C)->_comment/*4*/));
  85. }
  86. else{
  87. r310indent((T310*)(oBC11fmt));
  88. }
  89. /*FI]*/
  90. r310put_string((T310*)(oBC11fmt),((T90*)((C)->_tag/*16*/))->_to_string/*0*/);
  91. r310put_string((T310*)(oBC11fmt),((T0*)ms229_186));
  92. X89pretty_print((C)->_expression/*8*/);
  93. }
  94. /*No:LOOP_VARIANT_2.comment*/
  95. /*No:CALL_INFIX_EQ.feature_name*/
  96. /*No:CALL_INFIX_EQ.right_brackets*/
  97.  
  98.  
  99. T0* r113start_position(T113* C){
  100. T0* R=NULL;
  101. R=((T121*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  102. return R;
  103. }
  104.  
  105.  
  106. void r113error_comparison(T113* C,T0* a1,T0* a2){
  107. r37add_position(((T121*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  108. /*[IRF3.6append*/{T0* b1=((T0*)ms112_9960);
  109. r7append((T7*)(oBC37explanation),b1);
  110. }/*]*/
  111. /*[IRF3.6append*/{T0* b1=a1;
  112. r7append((T7*)(oBC37explanation),b1);
  113. }/*]*/
  114. /*[IRF3.6append*/{T0* b1=((T0*)ms112_88736);
  115. r7append((T7*)(oBC37explanation),b1);
  116. }/*]*/
  117. r37add_type(a2,((T0*)ms12_47));
  118. r37print_as_fatal_error((T37*)(oBC11eh));
  119. }
  120.  
  121.  
  122. T0* r113add_comment(T113* C,T0* a1){
  123. T0* R=NULL;
  124. /*[IF*/
  125. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r32count(((T32*)((((T64*)a1))->_list/*4*/)))/*)*/)==(0))){
  126. R=(T0*)C;
  127. }
  128. else{
  129. {T214*n=malloc(sizeof(*n));
  130. *n=M214;
  131. r214make(n,(T0*)C,a1);
  132. R=(T0*)n;
  133. }
  134. }
  135. /*FI]*/
  136. return R;
  137. }
  138.  
  139.  
  140. T2 r113to_integer(T113* C){
  141. T2 R=0;
  142. r113error(r113start_position(C),((T0*)ms12_45846));
  143. return R;
  144. }
  145.  
  146.  
  147. void r113bracketed_pretty_print(T113* C){
  148. r310put_character((T310*)(oBC11fmt),'\50');
  149. r113pretty_print(C);
  150. r310put_character((T310*)(oBC11fmt),'\51');
  151. }
  152.  
  153.  
  154. void r113print_op(T113* C){
  155. r310put_character((T310*)(oBC11fmt),'\40');
  156. /*[IRF3.6pretty_print*/{T121* C1=(T121*)((C)->_feature_name/*12*/);
  157. r310put_string((T310*)(oBC11fmt),(C1)->_to_string/*4*/);
  158. }/*]*/
  159. r310put_character((T310*)(oBC11fmt),'\40');
  160. }
  161.  
  162.  
  163. T0* r113to_runnable(T113* C,T0* a1){
  164. T0* R=NULL;
  165. T0* _a=NULL;
  166. T0* _t=NULL;
  167. _t=r113runnable_expression((C)->_target/*4*/,a1);
  168. _a=r113runnable_args((C)->_arguments/*8*/,a1);
  169. /*[IF*/
  170. if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  171. R=(T0*)C;
  172. }
  173. else{
  174. {T113*n=malloc(sizeof(*n));
  175. *n=M113;
  176. r113with(n,_t,(C)->_feature_name/*12*/,_a);
  177. R=(T0*)n;
  178. }
  179. }
  180. /*FI]*/
  181. r113check_comparison(((T113*)R),a1);
  182. return R;
  183. }
  184. /*No:CALL_INFIX_EQ.fz_bad_argument*/
  185. /*No:CALL_INFIX_EQ.fz_iinaiv*/
  186. /*No:CALL_INFIX_EQ.result_type*/
  187.  
  188.  
  189. T0* r113runnable_args(T0* a1,T0* a2){
  190. T0* R=NULL;
  191. R=r132to_runnable(((T132*)a1),a2);
  192. /*[IF*/
  193. if((R)==((void*)(NULL))){
  194. r37add_position(r132start_position(((T132*)a1)));
  195. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
  196. r37fatal_error((T37*)(oBC11eh),b1);
  197. }/*]*/
  198. }
  199. /*FI]*/
  200. return R;
  201. }
  202.  
  203.  
  204. void r113check_comparison(T113* C,T0* a1){
  205. T0* _at=NULL;
  206. T0* _tt=NULL;
  207. /*[IF*/
  208. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  209. _tt=X62run_type(X89result_type((C)->_target/*4*/));
  210. _at=X62run_type(X89result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  211. /*[IF*/
  212. if(X62is_none(_tt)){
  213. /*[IF*/
  214. if(X62is_expanded(_at)){
  215. X62used_as_reference(_at);
  216. }
  217. /*FI]*/
  218. }
  219.  else if(X62is_none(_at)){
  220. /*[IF*/
  221. if(X62is_expanded(_tt)){
  222. X62used_as_reference(_tt);
  223. }
  224. /*FI]*/
  225. }
  226.  else if(X62is_reference(_tt)){
  227. /*[IF*/
  228. if(X62is_reference(_at)){
  229. /*[IF*/
  230. if(X62is_a(_tt,_at)){
  231. }
  232. else{
  233. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC37explanation))))->_count)=(0);
  234. /*]*/
  235. /*[IRF3.3clear*/((((T38*)((T38*)(oBC37positions))))->_upper)=(-(1));
  236. /*]*/
  237. /*]*/
  238. /*[IF*/
  239. if(X62is_a(_at,_tt)){
  240. }
  241. else{
  242. r113error_comparison(C,((T0*)ms112_46246),a1);
  243. }
  244. /*FI]*/
  245. }
  246. /*FI]*/
  247. }
  248.  else if(!(X62is_a(_at,_tt))){
  249. r113error_comparison(C,((T0*)ms112_41670),a1);
  250. }
  251. else{
  252. X62used_as_reference(_at);
  253. }
  254. /*FI]*/
  255. }
  256. else{
  257. /*[IF*/
  258. if(X62is_expanded(_at)){
  259. /*[IF*/
  260. if(X62is_basic_eiffel_expanded(_at)){
  261. /*[IF*/
  262. if(X62is_a(_tt,_at)){
  263. }
  264. else{
  265. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC37explanation))))->_count)=(0);
  266. /*]*/
  267. /*[IRF3.3clear*/((((T38*)((T38*)(oBC37positions))))->_upper)=(-(1));
  268. /*]*/
  269. /*]*/
  270. /*[IF*/
  271. if(X62is_a(_at,_tt)){
  272. }
  273. else{
  274. r113error_comparison(C,((T0*)ms112_37791),a1);
  275. }
  276. /*FI]*/
  277. }
  278. /*FI]*/
  279. }
  280.  else if(X62is_bit(_tt)){
  281. r113bit_limitation(C,_tt,_at);
  282. }
  283.  else if(!(X62is_a(_at,_tt))){
  284. r113error_comparison(C,((T0*)ms112_37791a),a1);
  285. }
  286. /*FI]*/
  287. }
  288.  else if(!(X62is_a(_tt,_at))){
  289. r113error_comparison(C,((T0*)ms112_42138),a1);
  290. }
  291. else{
  292. X62used_as_reference(_tt);
  293. }
  294. /*FI]*/
  295. }
  296. /*FI]*/
  297. }
  298. /*FI]*/
  299. }
  300.  
  301.  
  302. void r113bit_limitation(T113* C,T0* a1,T0* a2){
  303. T0* _b2=NULL;
  304. T0* _b1=NULL;
  305. _b1=a1;
  306. if(NULL!=(_b1))switch(((T0*)_b1)->id) {
  307. case 260: case 262: 
  308. break;
  309. default:
  310. _b1=NULL;
  311. };_b2=a2;
  312. if(NULL!=(_b2))switch(((T0*)_b2)->id) {
  313. case 260: case 262: 
  314. break;
  315. default:
  316. _b2=NULL;
  317. };/*[IF*/
  318. if((X261nb(_b1))!=(X261nb(_b2))){
  319. r37add_position(((T121*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  320. /*[IRF3.6append*/{T0* b1=((T0*)ms112_21261);
  321. r7append((T7*)(oBC37explanation),b1);
  322. }/*]*/
  323. r37add_type(_b1,((T0*)ms112_1930));
  324. r37add_type(_b2,((T0*)ms112_383757));
  325. r37print_as_fatal_error((T37*)(oBC11eh));
  326. }
  327. /*FI]*/
  328. }
  329.  
  330.  
  331. void r113with(T113* C,T0* a1,T0* a2,T0* a3){
  332. C->_target=a1;
  333. C->_feature_name=a2;
  334. C->_arguments=a3;
  335. }
  336. /*No:CALL_INFIX_EQ.us_eq*/
  337. /*No:CALL_INFIX_EQ.fatal_error*/
  338. int fBC11type_boolean=0;
  339. T0*oBC11type_boolean=NULL;
  340.  
  341.  
  342. T0* r113type_boolean(void){
  343. if(fBC11type_boolean==0){
  344. fBC11type_boolean=1;
  345. {T248*n=malloc(sizeof(*n));
  346. *n=M248;
  347. r248make(n,NULL);
  348. oBC11type_boolean=(T0*)n;
  349. }
  350. }
  351. return oBC11type_boolean;}
  352. /*No:CALL_INFIX_EQ.nb_errors*/
  353. /*No:CALL_INFIX_EQ.arguments*/
  354.  
  355.  
  356. T0* r113runnable_expression(T0* a1,T0* a2){
  357. T0* R=NULL;
  358. R=X89to_runnable(a1,a2);
  359. /*[IF*/
  360. if((R)==((void*)(NULL))){
  361. r37add_position(X89start_position(a1));
  362. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms101_16515);
  363. r37fatal_error((T37*)(oBC11eh),b1);
  364. }/*]*/
  365. }
  366. /*FI]*/
  367. return R;
  368. }
  369. /*No:CALL_INFIX_EQ.left_brackets*/
  370.  
  371.  
  372. void r113print_as_target(T113* C){
  373. r310put_character((T310*)(oBC11fmt),'\50');
  374. r113pretty_print(C);
  375. r310put_character((T310*)(oBC11fmt),'\51');
  376. r310put_character((T310*)(oBC11fmt),'\56');
  377. }
  378. /*No:CALL_INFIX_EQ.arg1*/
  379. /*No:CALL_INFIX_EQ.fz_dot*/
  380. /*No:CALL_INFIX_EQ.target*/
  381.  
  382.  
  383. void r113error(T0* a1,T0* a2){
  384. r37add_position(a1);
  385. r37error((T37*)(oBC11eh),a2);
  386. }
  387. /*No:CALL_INFIX_EQ.precedence*/
  388.  
  389.  
  390. void r113make(T113* C,T0* a1,T0* a2,T0* a3){
  391. C->_target=a1;
  392. {T121*n=malloc(sizeof(*n));
  393. *n=M121;
  394. r121make(n,r113operator(),a2);
  395. C->_feature_name=(T0*)n;
  396. }
  397. {T132*n=malloc(sizeof(*n));
  398. *n=M132;
  399. /*[IRF3.3make_1*/((((T132*)(n)))->_first_one)=(a3);
  400. /*]*/
  401. C->_arguments=(T0*)n;
  402. }
  403. }
  404. /*No:CALL_INFIX_EQ.is_current*/
  405.  
  406.  
  407. void r113pretty_print(T113* C){
  408. /*[IF*/
  409. if((X89precedence((C)->_target/*4*/))==(13)){
  410. X89pretty_print((C)->_target/*4*/);
  411. }
  412.  else if((6)>(X89precedence((C)->_target/*4*/))){
  413. X89bracketed_pretty_print((C)->_target/*4*/);
  414. }
  415.  else if((6)<(X89precedence((C)->_target/*4*/))){
  416. X89pretty_print((C)->_target/*4*/);
  417. }
  418. /*AF*/else{
  419. X89pretty_print((C)->_target/*4*/);
  420. }
  421. /*FI]*/
  422. r113print_op(C);
  423. /*[IF*/
  424. if((X89precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))==(13)){
  425. X89pretty_print(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  426. }
  427.  else if((6)>(X89precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
  428. X89bracketed_pretty_print(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  429. }
  430.  else if((6)<(X89precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
  431. X89pretty_print(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  432. }
  433.  else {/*AT*/X89bracketed_pretty_print(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  434. }
  435. /*FI]*/
  436. }
  437. /*No:CALL_INFIX_EQ.is_void*/
  438.  
  439.  
  440. T0* r113operator(void){
  441. T0* R=NULL;
  442. R=((T0*)ms13_62);
  443. return R;
  444. }
  445. /*No:CALL_INFIX_EQ.atomic_precedence*/
  446. /*No:CALL_INFIX_AND.feature_name*/
  447. /*No:CALL_INFIX_AND.right_brackets*/
  448.  
  449.  
  450. T0* r105start_position(T105* C){
  451. T0* R=NULL;
  452. R=((T121*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  453. return R;
  454. }
  455.  
  456.  
  457. T0* r105add_comment(T105* C,T0* a1){
  458. T0* R=NULL;
  459. /*[IF*/
  460. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r32count(((T32*)((((T64*)a1))->_list/*4*/)))/*)*/)==(0))){
  461. R=(T0*)C;
  462. }
  463. else{
  464. {T214*n=malloc(sizeof(*n));
  465. *n=M214;
  466. r214make(n,(T0*)C,a1);
  467. R=(T0*)n;
  468. }
  469. }
  470. /*FI]*/
  471. return R;
  472. }
  473.  
  474.  
  475. T2 r105to_integer(T105* C){
  476. T2 R=0;
  477. r105error(r105start_position(C),((T0*)ms12_45846));
  478. return R;
  479. }
  480.  
  481.  
  482. void r105bracketed_pretty_print(T105* C){
  483. r310put_character((T310*)(oBC11fmt),'\50');
  484. r105pretty_print(C);
  485. r310put_character((T310*)(oBC11fmt),'\51');
  486. }
  487.  
  488.  
  489. void r105print_op(T105* C){
  490. r310put_character((T310*)(oBC11fmt),'\40');
  491. /*[IRF3.6pretty_print*/{T121* C1=(T121*)((C)->_feature_name/*12*/);
  492. r310put_string((T310*)(oBC11fmt),(C1)->_to_string/*4*/);
  493. }/*]*/
  494. r310put_character((T310*)(oBC11fmt),'\40');
  495. }
  496.  
  497.  
  498. T0* r105to_runnable(T105* C,T0* a1){
  499. T0* R=NULL;
  500. T0* _rf=NULL;
  501. T0* _tbee=NULL;
  502. T0* _at=NULL;
  503. T0* _tt=NULL;
  504. T0* _a=NULL;
  505. T0* _t=NULL;
  506. _t=r105runnable_expression((C)->_target/*4*/,a1);
  507. _a=r105runnable_args((C)->_arguments/*8*/,a1);
  508. _tt=X89result_type(_t);
  509. _at=X89result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  510. /*[IF*/
  511. /*AF*//*AE*/
  512. /*FI]*/
  513. _rf=r105run_feature_for(C,_t,a1);
  514. /*[IF*/
  515. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  516. C->_target=_t;
  517. C->_arguments=_a;
  518. C->_run_feature=_rf;
  519. r105run_feature_match(C,a1);
  520. R=(T0*)C;
  521. }
  522.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  523. R=(T0*)C;
  524. }
  525. else{
  526. {T105*n=malloc(sizeof(*n));
  527. *n=M105;
  528. r105with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  529. R=(T0*)n;
  530. }
  531. }
  532. /*FI]*/
  533. return R;
  534. }
  535. /*No:CALL_INFIX_AND.fz_bad_argument*/
  536. /*No:CALL_INFIX_AND.fz_iinaiv*/
  537.  
  538.  
  539. T0* r105result_type(T105* C){
  540. T0* R=NULL;
  541. T0* _tla=NULL;
  542. R=X312result_type((C)->_run_feature/*16*/);
  543. /*[IF*/
  544. if(X62is_like_current(R)){
  545. R=/*X312current_type*/((T0*)((T325*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  546. }
  547. else{
  548. _tla=R;
  549. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  550. case 242: 
  551. break;
  552. default:
  553. _tla=NULL;
  554. };/*[IF*/
  555. if((_tla)!=((void*)(NULL))){
  556. R=X62run_type(X89result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  557. }
  558. /*FI]*/
  559. }
  560. /*FI]*/
  561. return R;
  562. }
  563. /*No:CALL_INFIX_AND.run_feature*/
  564.  
  565.  
  566. T0* r105runnable_args(T0* a1,T0* a2){
  567. T0* R=NULL;
  568. R=r132to_runnable(((T132*)a1),a2);
  569. /*[IF*/
  570. if((R)==((void*)(NULL))){
  571. r37add_position(r132start_position(((T132*)a1)));
  572. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
  573. r37fatal_error((T37*)(oBC11eh),b1);
  574. }/*]*/
  575. }
  576. /*FI]*/
  577. return R;
  578. }
  579.  
  580.  
  581. void r105with(T105* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  582. C->_target=a1;
  583. C->_feature_name=a2;
  584. C->_arguments=a3;
  585. C->_run_feature=a4;
  586. r105run_feature_match(C,a5);
  587. }
  588. /*No:CALL_INFIX_AND.fatal_error*/
  589.  
  590.  
  591. void r105run_feature_match(T105* C,T0* a1){
  592. r105run_feature_has_result(C);
  593. r132match_with((T132*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
  594. }
  595. /*No:CALL_INFIX_AND.arguments*/
  596.  
  597.  
  598. T0* r105runnable_expression(T0* a1,T0* a2){
  599. T0* R=NULL;
  600. R=X89to_runnable(a1,a2);
  601. /*[IF*/
  602. if((R)==((void*)(NULL))){
  603. r37add_position(X89start_position(a1));
  604. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms101_16515);
  605. r37fatal_error((T37*)(oBC11eh),b1);
  606. }/*]*/
  607. }
  608. /*FI]*/
  609. return R;
  610. }
  611. /*No:CALL_INFIX_AND.left_brackets*/
  612. /*No:CALL_INFIX_AND.implicit_cast*/
  613.  
  614.  
  615. void r105print_as_target(T105* C){
  616. r310put_character((T310*)(oBC11fmt),'\50');
  617. r105pretty_print(C);
  618. r310put_character((T310*)(oBC11fmt),'\51');
  619. r310put_character((T310*)(oBC11fmt),'\56');
  620. }
  621. /*No:CALL_INFIX_AND.arg1*/
  622.  
  623.  
  624. void r105run_feature_has_result(T105* C){
  625. /*[IF*/
  626. if((X312result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  627. r37add_position(X312start_position((C)->_run_feature/*16*/));
  628. r37add_position(((T121*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  629. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms100_53650);
  630. r37fatal_error((T37*)(oBC11eh),b1);
  631. }/*]*/
  632. }
  633. /*FI]*/
  634. }
  635.  
  636.  
  637. T0* r105run_feature_for(T105* C,T0* a1,T0* a2){
  638. T0* R=NULL;
  639. T0* _rc=NULL;
  640. _rc=X62run_class(X89result_type(a1));
  641. R=r313get_rf(((T313*)_rc),a1,(C)->_feature_name/*12*/,a2);
  642. return R;
  643. }
  644. /*No:CALL_INFIX_AND.target*/
  645.  
  646.  
  647. void r105error(T0* a1,T0* a2){
  648. r37add_position(a1);
  649. r37error((T37*)(oBC11eh),a2);
  650. }
  651. /*No:CALL_INFIX_AND.precedence*/
  652.  
  653.  
  654. void r105make(T105* C,T0* a1,T0* a2,T0* a3){
  655. C->_target=a1;
  656. {T121*n=malloc(sizeof(*n));
  657. *n=M121;
  658. r121make(n,r105operator(),a2);
  659. C->_feature_name=(T0*)n;
  660. }
  661. {T132*n=malloc(sizeof(*n));
  662. *n=M132;
  663. /*[IRF3.3make_1*/((((T132*)(n)))->_first_one)=(a3);
  664. /*]*/
  665. C->_arguments=(T0*)n;
  666. }
  667. }
  668. /*No:CALL_INFIX_AND.is_current*/
  669.  
  670.  
  671. void r105pretty_print(T105* C){
  672. /*[IF*/
  673. if((X89precedence((C)->_target/*4*/))==(13)){
  674. X89pretty_print((C)->_target/*4*/);
  675. }
  676.  else if((5)>(X89precedence((C)->_target/*4*/))){
  677. X89bracketed_pretty_print((C)->_target/*4*/);
  678. }
  679.  else if((5)<(X89precedence((C)->_target/*4*/))){
  680. X89pretty_print((C)->_target/*4*/);
  681. }
  682. /*AF*/else{
  683. X89pretty_print((C)->_target/*4*/);
  684. }
  685. /*FI]*/
  686. r105print_op(C);
  687. /*[IF*/
  688. if((X89precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))==(13)){
  689. X89pretty_print(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  690. }
  691.  else if((5)>(X89precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
  692. X89bracketed_pretty_print(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  693. }
  694.  else if((5)<(X89precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
  695. X89pretty_print(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  696. }
  697.  else {/*AT*/X89bracketed_pretty_print(/*(IRF4.6arg1*//*(IRF4.3first*/(((T132*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  698. }
  699. /*FI]*/
  700. }
  701. /*No:CALL_INFIX_AND.is_void*/
  702. /*No:CALL_INFIX_AND.us_and*/
  703.  
  704.  
  705. T0* r105operator(void){
  706. T0* R=NULL;
  707. R=((T0*)ms13_939);
  708. return R;
  709. }
  710. /*No:CALL_INFIX_AND.atomic_precedence*/
  711.  
  712.  
  713. T0* r151type_boolean(void){
  714. if(fBC11type_boolean==0){
  715. fBC11type_boolean=1;
  716. {T248*n=malloc(sizeof(*n));
  717. *n=M248;
  718. r248make(n,NULL);
  719. oBC11type_boolean=(T0*)n;
  720. }
  721. }
  722. return oBC11type_boolean;}
  723. /*No:E_TRUE.start_position*/
  724.  
  725.  
  726. T0* r151to_string(void){
  727. T0* R=NULL;
  728. R=((T0*)ms12_1832);
  729. return R;
  730. }
  731.  
  732.  
  733. T0* r151add_comment(T151* C,T0* a1){
  734. T0* R=NULL;
  735. /*[IF*/
  736. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r32count(((T32*)((((T64*)a1))->_list/*4*/)))/*)*/)==(0))){
  737. R=(T0*)C;
  738. }
  739. else{
  740. {T214*n=malloc(sizeof(*n));
  741. *n=M214;
  742. r214make(n,(T0*)C,a1);
  743. R=(T0*)n;
  744. }
  745. }
  746. /*FI]*/
  747. return R;
  748. }
  749. /*No:E_TRUE.to_integer*/
  750. /*No:E_TRUE.print_as_target*/
  751. /*No:E_TRUE.bracketed_pretty_print*/
  752. /*No:E_TRUE.to_runnable*/
  753. /*No:E_TRUE.fz_iinaiv*/
  754. /*No:E_TRUE.result_type*/
  755.  
  756.  
  757. void r151error(T0* a1,T0* a2){
  758. r37add_position(a1);
  759. r37error((T37*)(oBC11eh),a2);
  760. }
  761. /*No:E_TRUE.precedence*/
  762. /*No:E_TRUE.make*/
  763. /*No:E_TRUE.fz_true*/
  764. /*No:E_TRUE.is_current*/
  765. /*No:E_TRUE.pretty_print*/
  766. /*No:E_TRUE.is_void*/
  767. /*No:E_TRUE.atomic_precedence*/
  768.  
  769.  
  770. T0* r129start_position(T129* C){
  771. T0* R=NULL;
  772. R=X89start_position((C)->_expression/*4*/);
  773. return R;
  774. }
  775.  
  776.  
  777. T0* r129add_comment(T129* C,T0* a1){
  778. T0* R=NULL;
  779. /*[IF*/
  780. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r32count(((T32*)((((T64*)a1))->_list/*4*/)))/*)*/)==(0))){
  781. R=(T0*)C;
  782. }
  783. else{
  784. {T214*n=malloc(sizeof(*n));
  785. *n=M214;
  786. r214make(n,(T0*)C,a1);
  787. R=(T0*)n;
  788. }
  789. }
  790. /*FI]*/
  791. return R;
  792. }
  793. /*No:E_OLD.expression*/
  794.  
  795.  
  796. T2 r129to_integer(T129* C){
  797. T2 R=0;
  798. r129error(r129start_position(C),((T0*)ms12_45846));
  799. return R;
  800. }
  801.  
  802.  
  803. void r129print_as_target(T129* C){
  804. r310put_character((T310*)(oBC11fmt),'\50');
  805. r129pretty_print(C);
  806. r310put_character((T310*)(oBC11fmt),'\51');
  807. r310put_character((T310*)(oBC11fmt),'\56');
  808. }
  809.  
  810.  
  811. void r129bracketed_pretty_print(T129* C){
  812. r310put_character((T310*)(oBC11fmt),'\50');
  813. r129pretty_print(C);
  814. r310put_character((T310*)(oBC11fmt),'\51');
  815. }
  816.  
  817.  
  818. T0* r129to_runnable(T129* C,T0* a1){
  819. T0* R=NULL;
  820. T0* _exp=NULL;
  821. /*[IF*/
  822. if(((C)->_current_type/*8*/)==((void*)(NULL))){
  823. C->_current_type=a1;
  824. _exp=X89to_runnable((C)->_expression/*4*/,a1);
  825. /*[IF*/
  826. if((_exp)==((void*)(NULL))){
  827. r129error(r129start_position(C),((T0*)ms129_24605));
  828. }
  829. else{
  830. C->_expression=_exp;
  831. }
  832. /*FI]*/
  833. R=(T0*)C;
  834. }
  835. else{
  836. {T129*n=malloc(sizeof(*n));
  837. *n=M129;
  838. /*[IRF3.3make*/((((T129*)(n)))->_expression)=((C)->_expression/*4*/);
  839. /*]*/
  840. R=(T0*)n;
  841. }
  842. R=r129to_runnable(((T129*)R),a1);
  843. }
  844. /*FI]*/
  845. return R;
  846. }
  847. /*No:E_OLD.current_type*/
  848. /*No:E_OLD.fz_iinaiv*/
  849.  
  850.  
  851. T0* r129result_type(T129* C){
  852. T0* R=NULL;
  853. R=X89result_type((C)->_expression/*4*/);
  854. return R;
  855. }
  856.  
  857.  
  858. void r129error(T0* a1,T0* a2){
  859. r37add_position(a1);
  860. r37error((T37*)(oBC11eh),a2);
  861. }
  862. /*No:E_OLD.precedence*/
  863. /*No:E_OLD.make*/
  864. /*No:E_OLD.is_current*/
  865.  
  866.  
  867. void r129pretty_print(T129* C){
  868. r310put_string((T310*)(oBC11fmt),((T0*)ms129_1444));
  869. r310level_incr((T310*)(oBC11fmt));
  870. X89pretty_print((C)->_expression/*4*/);
  871. r310level_decr((T310*)(oBC11fmt));
  872. }
  873. /*No:E_OLD.is_void*/
  874. /*No:WRITABLE_ATTRIBUTE.base_class*/
  875.  
  876.  
  877. T0* r299start_position(T299* C){
  878. T0* R=NULL;
  879. R=X65start_position(/*(IRF4.6first_name*/r67item(((T67*)((C)->_names/*8*/)),1)/*)*/);
  880. return R;
  881. }
  882.  
  883.  
  884. T6 r299is_merge_with(T299* C,T0* a1,T0* a2){
  885. T6 R=0;
  886. R=1;
  887. /*[IF*/
  888. if(((C)->_result_type/*20*/)!=((void*)(X75result_type(a1)))){
  889. /*[IF*/
  890. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X75result_type(a1))==((void*)(NULL)))){
  891. R=0;
  892. }
  893. /*FI]*/
  894. }
  895. /*FI]*/
  896. /*[IF*/
  897. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X75arguments(a1)))){
  898. /*[IF*/
  899. {/*AT*/R=0;
  900. }
  901. /*FI]*/
  902. }
  903. /*FI]*/
  904. /*[IF*/
  905. if(R){
  906. /*[IF*/
  907. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  908. R=X62is_a_in((C)->_result_type/*20*/,X75result_type(a1),a2);
  909. }
  910. /*FI]*/
  911. /*[IF*/
  912. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  913. R=r171is_a_in((T171*)(/*(IRF4.1arguments*/NULL/*)*/),X75arguments(a1),a2);
  914. }
  915. /*FI]*/
  916. /*[IF*/
  917. if(!(R)){
  918. R=1;
  919. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC37explanation))))->_count)=(0);
  920. /*]*/
  921. /*[IRF3.3clear*/((((T38*)((T38*)(oBC37positions))))->_upper)=(-(1));
  922. /*]*/
  923. /*]*/
  924. /*[IF*/
  925. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  926. R=X62is_a_in(X75result_type(a1),(C)->_result_type/*20*/,a2);
  927. }
  928. /*FI]*/
  929. /*[IF*/
  930. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  931. R=r171is_a_in((T171*)(X75arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
  932. }
  933. /*FI]*/
  934. }
  935. /*FI]*/
  936. }
  937. /*FI]*/
  938. /*[IF*/
  939. if(R){
  940. r299merge_header_comments(C,a1);
  941. }
  942. /*FI]*/
  943. return R;
  944. }
  945. /*No:WRITABLE_ATTRIBUTE.first_name*/
  946. /*No:WRITABLE_ATTRIBUTE.em1*/
  947. /*No:WRITABLE_ATTRIBUTE.set_isa_redefinition*/
  948. /*No:WRITABLE_ATTRIBUTE.header_comment*/
  949.  
  950.  
  951. void r299pretty_print_profile(T299* C){
  952. r299pretty_print_names(C);
  953. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  954. /*]*/
  955. /*[IRF3.1pretty_print_arguments*//*]*/
  956. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(3);
  957. /*]*/
  958. /*[IF*/
  959. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  960. r310put_string((T310*)(oBC11fmt),((T0*)ms75_186));
  961. X62pretty_print((C)->_result_type/*20*/);
  962. }
  963. /*FI]*/
  964. }
  965. /*No:WRITABLE_ATTRIBUTE.names*/
  966. /*No:WRITABLE_ATTRIBUTE.result_type*/
  967. /*No:WRITABLE_ATTRIBUTE.code_require*/
  968. /*No:WRITABLE_ATTRIBUTE.make_e_feature*/
  969.  
  970.  
  971. void r299add_into(T299* C,T0* a1){
  972. T0* _fn=NULL;
  973. T2 _i=0;
  974. C->_base_class=r39base_class((T39*)(X65start_position(r67item((T67*)((C)->_names/*8*/),1))));
  975. _i=1;
  976. while (!((_i)>(r67count((T67*)((C)->_names/*8*/))))) {
  977. _fn=r67item((T67*)((C)->_names/*8*/),_i);
  978. /*[IF*/
  979. if(r74has(((T74*)a1),X65to_key(_fn))){
  980. _fn=/*X75first_name*/((T0*)/*(IRF4.6first_name*/r67item(((T67*)(((T183*)(r74at(((T74*)a1),X65to_key(_fn))))->_names/*8*/)),1)/*)*/);
  981. r37add_position(X65start_position(_fn));
  982. r37add_position(X65start_position(r67item((T67*)((C)->_names/*8*/),_i)));
  983. r37error((T37*)(oBC11eh),((T0*)ms75_41905));
  984. /*[IRF3.6append*/{T0* b1=X65to_string(_fn);
  985. r7append((T7*)(oBC37explanation),b1);
  986. }/*]*/
  987. r37error((T37*)(oBC11eh),((T0*)ms12_47));
  988. }
  989. else{
  990. r74put(((T74*)a1),(T0*)C,X65to_key(_fn));
  991. }
  992. /*FI]*/
  993. _i=(_i)+(1);
  994. }
  995. }
  996.  
  997.  
  998. T6 r299can_hide(T299* C,T0* a1,T0* a2){
  999. T6 R=0;
  1000. /*[IF*/
  1001. if(((C)->_result_type/*20*/)!=((void*)(X75result_type(a1)))){
  1002. /*[IF*/
  1003. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X75result_type(a1))==((void*)(NULL)))){
  1004. r37add_position(X75start_position(a1));
  1005. r299error(r299start_position(C),((T0*)ms75_64647));
  1006. }
  1007. /*FI]*/
  1008. }
  1009. /*FI]*/
  1010. /*[IF*/
  1011. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X75arguments(a1)))){
  1012. /*[IF*/
  1013. {/*AT*/r37add_position(X75start_position(a1));
  1014. r299error(r299start_position(C),((T0*)ms75_83182));
  1015. }
  1016. /*FI]*/
  1017. }
  1018. /*FI]*/
  1019. /*[IF*/
  1020. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1021. /*[IF*/
  1022. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1023. /*[IF*/
  1024. if(!(X62is_a_in((C)->_result_type/*20*/,X75result_type(a1),a2))){
  1025. /*[IRF3.6append*/{T0* b1=((T0*)ms75_54285);
  1026. r7append((T7*)(oBC37explanation),b1);
  1027. }/*]*/
  1028. /*[IRF3.6append*/{T0* b1=X62run_time_mark((((T313*)a2))->_current_type/*0*/);
  1029. r7append((T7*)(oBC37explanation),b1);
  1030. }/*]*/
  1031. r37error((T37*)(oBC11eh),((T0*)ms12_47));
  1032. }
  1033. /*FI]*/
  1034. }
  1035. /*FI]*/
  1036. }
  1037. /*FI]*/
  1038. /*[IF*/
  1039. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1040. /*[IF*/
  1041. /*AF*//*AE*/
  1042. /*FI]*/
  1043. }
  1044. /*FI]*/
  1045. R=(/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
  1046. /*[IF*/
  1047. if(R){
  1048. r299merge_header_comments(C,a1);
  1049. }
  1050. /*FI]*/
  1051. return R;
  1052. }
  1053. /*No:WRITABLE_ATTRIBUTE.ensure_assertion*/
  1054.  
  1055.  
  1056. T0* r299try_to_undefine(T299* C,T0* a1,T0* a2){
  1057. T0* R=NULL;
  1058. T0* _fn2=NULL;
  1059. r37add_position(X65start_position(a1));
  1060. _fn2=r67feature_name((T67*)((C)->_names/*8*/),X65to_key(a1));
  1061. /*[IF*/
  1062. if((_fn2)!=((void*)(NULL))){
  1063. X65undefine_in(_fn2,a2);
  1064. }
  1065. /*FI]*/
  1066. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC37explanation))))->_count)=(0);
  1067. /*]*/
  1068. /*[IRF3.3clear*/((((T38*)((T38*)(oBC37positions))))->_upper)=(-(1));
  1069. /*]*/
  1070. /*]*/
  1071. R=r299try_to_undefine_aux(C,a1,a2);
  1072. /*[IF*/
  1073. if((R)!=((void*)(NULL))){
  1074. /*X269set_clients*//*[IRF3.3set_clients*/((((T272*)(((T272*)R))))->_clients)=((C)->_clients/*16*/);
  1075. /*]*/
  1076. r299merge_header_comments(C,R);
  1077. }
  1078. else{
  1079. r41fatal_undefine(((T41*)a2),a1);
  1080. }
  1081. /*FI]*/
  1082. return R;
  1083. }
  1084. /*No:WRITABLE_ATTRIBUTE.is_deferred*/
  1085. /*No:WRITABLE_ATTRIBUTE.set_clients*/
  1086. /*No:WRITABLE_ATTRIBUTE.nb_errors*/
  1087.  
  1088.  
  1089. T0* r299to_run_feature(T299* C,T0* a1,T0* a2){
  1090. T0* R=NULL;
  1091. {T345*n=malloc(sizeof(*n));
  1092. *n=M345;
  1093. r345make(n,a1,a2,(T0*)C);
  1094. R=(T0*)n;
  1095. }
  1096. return R;
  1097. }
  1098.  
  1099.  
  1100. void r299merge_header_comments(T299* C,T0* a1){
  1101. /*[IF*/
  1102. if(((T42*)(oBC11small_eiffel))->_short_flag/*0*/){
  1103. /*[IF*/
  1104. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  1105. C->_header_comment=/*X75header_comment*/((T0*)(((T183*)a1))->_header_comment/*12*/);
  1106. }
  1107.  else if((/*X75header_comment*/((T0*)(((T183*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  1108. X75set_header_comment(a1,(C)->_header_comment/*12*/);
  1109. }
  1110. /*FI]*/
  1111. }
  1112. /*FI]*/
  1113. }
  1114. /*No:WRITABLE_ATTRIBUTE.arguments*/
  1115. /*No:WRITABLE_ATTRIBUTE.require_assertion*/
  1116. /*No:WRITABLE_ATTRIBUTE.pretty_print_arguments*/
  1117.  
  1118.  
  1119. T0* r299try_to_undefine_aux(T299* C,T0* a1,T0* a2){
  1120. T0* R=NULL;
  1121. r37add_position(r299start_position(C));
  1122. r299error(X65start_position(a1),((T0*)ms185_99414));
  1123. r41fatal_undefine(((T41*)a2),a1);
  1124. return R;
  1125. }
  1126. /*No:WRITABLE_ATTRIBUTE.isa_redefinition*/
  1127. /*No:WRITABLE_ATTRIBUTE.fz_dot*/
  1128.  
  1129.  
  1130. void r299error(T0* a1,T0* a2){
  1131. r37add_position(a1);
  1132. r37error((T37*)(oBC11eh),a2);
  1133. }
  1134.  
  1135.  
  1136. void r299make(T299* C,T0* a1,T0* a2){
  1137. /*[IRF3.3make_e_feature*/((((T299*)(C)))->_names)=(a1);
  1138. /*]*/
  1139. C->_result_type=a2;
  1140. }
  1141.  
  1142.  
  1143. void r299pretty_print_names(T299* C){
  1144. T2 _i=0;
  1145. _i=1;
  1146. X65declaration_pretty_print(r67item((T67*)((C)->_names/*8*/),_i));
  1147. _i=(_i)+(1);
  1148. while (!((_i)>(r67count((T67*)((C)->_names/*8*/))))) {
  1149. r310put_string((T310*)(oBC11fmt),((T0*)ms75_158));
  1150. X65declaration_pretty_print(r67item((T67*)((C)->_names/*8*/),_i));
  1151. _i=(_i)+(1);
  1152. }
  1153. }
  1154.  
  1155.  
  1156. void r299pretty_print(T299* C){
  1157. r299pretty_print_profile(C);
  1158. /*[IRF3.1pretty_tail*//*]*/
  1159. r310put_character((T310*)(oBC11fmt),'\73');
  1160. /*[IF*/
  1161. if(((C)->_header_comment/*12*/)!=((void*)(NULL))){
  1162. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  1163. /*]*/
  1164. r310indent((T310*)(oBC11fmt));
  1165. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(1);
  1166. /*]*/
  1167. r64pretty_print((T64*)((C)->_header_comment/*12*/));
  1168. }
  1169. else{
  1170. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(1);
  1171. /*]*/
  1172. }
  1173. /*FI]*/
  1174. }
  1175.  
  1176.  
  1177. void r299collect_for(T2 a1){
  1178. T0* _er=NULL;
  1179. /*[IF*/
  1180. if((a1)==(1)){
  1181. _er=/*(IRF4.1require_assertion*/NULL/*)*/;
  1182. /*[IF*/
  1183. if((_er)!=((void*)(NULL))){
  1184. /*[IF*/
  1185. if(!(r332fast_has((T332*)(oBC75require_collector),_er))){
  1186. r332add_last((T332*)(oBC75require_collector),_er);
  1187. }
  1188. /*FI]*/
  1189. }
  1190. /*FI]*/
  1191. }
  1192. else{
  1193. /*[IF*/
  1194. /*AF*//*AE*/
  1195. /*FI]*/
  1196. }
  1197. /*FI]*/
  1198. }
  1199. /*No:WRITABLE_ATTRIBUTE.set_header_comment*/
  1200. /*No:WRITABLE_ATTRIBUTE.pretty_tail*/
  1201. /*No:WRITABLE_ATTRIBUTE.clients*/
  1202. /*No:RUN_FEATURE_4.use_current_state*/
  1203. /*No:RUN_FEATURE_4.rescue_compound*/
  1204. /*No:RUN_FEATURE_4.actuals_clients*/
  1205. /*No:RUN_FEATURE_4.arguments*/
  1206.  
  1207.  
  1208. void r337initialize(T337* C){
  1209. C->_arguments=((T288*)((C)->_base_feature/*32*/))->_arguments/*24*/;
  1210. C->_result_type=((T288*)((C)->_base_feature/*32*/))->_result_type/*56*/;
  1211. /*[IF*/
  1212. if(X62is_like_argument((C)->_result_type/*40*/)){
  1213. /*[IF*/
  1214. if(!(r171is_runnable((T171*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  1215. {T171*n=malloc(sizeof(*n));
  1216. *n=M171;
  1217. r171with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  1218. C->_arguments=(T0*)n;
  1219. }
  1220. }
  1221. /*FI]*/
  1222. C->_result_type=X62to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
  1223. }
  1224. else{
  1225. C->_result_type=X62to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
  1226. /*[IF*/
  1227. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1228. /*[IF*/
  1229. if(!(r171is_runnable((T171*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  1230. {T171*n=malloc(sizeof(*n));
  1231. *n=M171;
  1232. r171with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  1233. C->_arguments=(T0*)n;
  1234. }
  1235. }
  1236. /*FI]*/
  1237. }
  1238. /*FI]*/
  1239. }
  1240. /*FI]*/
  1241. C->_local_vars=((T288*)((C)->_base_feature/*32*/))->_local_vars/*16*/;
  1242. /*[IF*/
  1243. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  1244. C->_local_vars=r162to_runnable((T162*)((C)->_local_vars/*44*/),(C)->_current_type/*4*/);
  1245. }
  1246. /*FI]*/
  1247. C->_routine_body=((T288*)((C)->_base_feature/*32*/))->_routine_body/*44*/;
  1248. /*[IF*/
  1249. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  1250. C->_routine_body=r200to_runnable((T200*)((C)->_routine_body/*48*/),(C)->_current_type/*4*/);
  1251. }
  1252. /*FI]*/
  1253. /*[IF*/
  1254. if(r54require_check((T54*)(oBC11run_control))){
  1255. C->_require_assertion=r288run_require((T0*)C);
  1256. }
  1257. /*FI]*/
  1258. /*[IF*/
  1259. if(r54ensure_check((T54*)(oBC11run_control))){
  1260. C->_ensure_assertion=r288run_ensure((T0*)C);
  1261. }
  1262. /*FI]*/
  1263. C->_rescue_compound=((T288*)((C)->_base_feature/*32*/))->_rescue_compound/*48*/;
  1264. /*[IF*/
  1265. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  1266. /*[IRF3.3set_used*/((((T336*)((T336*)(oBC11exceptions_handler))))->_used)=(1);
  1267. /*]*/
  1268. C->_rescue_compound=r200to_runnable((T200*)((C)->_rescue_compound/*52*/),(C)->_current_type/*4*/);
  1269. }
  1270. /*FI]*/
  1271. }
  1272.  
  1273.  
  1274. T0* r337start_position(T337* C){
  1275. T0* R=NULL;
  1276. R=r288start_position((T288*)((C)->_base_feature/*32*/));
  1277. return R;
  1278. }
  1279. /*No:RUN_FEATURE_4.require_assertion*/
  1280. /*No:RUN_FEATURE_4.clients_memory*/
  1281. /*No:RUN_FEATURE_4.ucs_not_computed*/
  1282. /*No:RUN_FEATURE_4.current_type*/
  1283.  
  1284.  
  1285. void r337add_client(T337* C,T0* a1){
  1286. T2 _i=0;
  1287. /*[IF*/
  1288. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  1289. {T319*n=malloc(sizeof(*n));
  1290. *n=M319;
  1291. r319with_capacity(n,4);
  1292. C->_actuals_clients=(T0*)n;
  1293. }
  1294. r319add_last((T319*)((C)->_actuals_clients/*12*/),a1);
  1295. }
  1296. else{
  1297. _i=r319fast_index_of((T319*)((C)->_actuals_clients/*12*/),a1);
  1298. /*[IF*/
  1299. if((_i)>(((T319*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  1300. r319add_last((T319*)((C)->_actuals_clients/*12*/),a1);
  1301. }
  1302. /*FI]*/
  1303. }
  1304. /*FI]*/
  1305. r313add_client((T313*)(r337run_class(C)),a1);
  1306. }
  1307.  
  1308.  
  1309. T0* r337run_class(T337* C){
  1310. T0* R=NULL;
  1311. R=X62run_class((C)->_current_type/*4*/);
  1312. return R;
  1313. }
  1314. /*No:RUN_FEATURE_4.result_type*/
  1315. /*No:RUN_FEATURE_4.base_feature*/
  1316. /*No:RUN_FEATURE_4.ensure_assertion*/
  1317.  
  1318.  
  1319. void r337make(T337* C,T0* a1,T0* a2,T0* a3){
  1320. C->_current_type=a1;
  1321. C->_name=a2;
  1322. C->_base_feature=a3;
  1323. /*[IRF3.5add_rf*/r315put(((T315*)(((T313*)(r337run_class(C)))->_feature_dictionary/*20*/)),(T0*)C,X65to_key(a2));
  1324. /*]*/
  1325. r42incr_magic_count((T42*)(oBC11small_eiffel));
  1326. C->_use_current_state=15;
  1327. r42push((T42*)(oBC11small_eiffel),(T0*)C);
  1328. r337initialize(C);
  1329. r42pop((T42*)(oBC11small_eiffel));
  1330. }
  1331. /*No:RUN_FEATURE_4.routine_body*/
  1332. /*No:RUN_FEATURE_4.name*/
  1333. /*No:RUN_FEATURE_4.local_vars*/
  1334.  
  1335.  
  1336. T2 r337arg_count(T337* C){
  1337. T2 R=0;
  1338. /*[IF*/
  1339. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1340. R=/*(IRF4.6count*/(((T175*)(((T171*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
  1341. }
  1342. /*FI]*/
  1343. return R;
  1344. }
  1345.  
  1346.  
  1347. T0* r337clients(T337* C){
  1348. T0* R=NULL;
  1349. T0* _bfbc=NULL;
  1350. T0* _bc=NULL;
  1351. /*[IF*/
  1352. if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
  1353. _bc=X62base_class((C)->_current_type/*4*/);
  1354. _bfbc=((T288*)((C)->_base_feature/*32*/))->_base_class/*4*/;
  1355. /*[IF*/
  1356. if((_bc)==((void*)(_bfbc))){
  1357. R=((T288*)((C)->_base_feature/*32*/))->_clients/*20*/;
  1358. }
  1359. else{
  1360. R=r41clients_for(((T41*)_bc),(C)->_name/*16*/);
  1361. }
  1362. /*FI]*/
  1363. C->_clients_memory=R;
  1364. }
  1365. else{
  1366. R=(C)->_clients_memory/*8*/;
  1367. }
  1368. /*FI]*/
  1369. return R;
  1370. }
  1371.  
  1372.  
  1373. T6 r337is_exported_in(T337* C,T0* a1){
  1374. T6 R=0;
  1375. R=r83gives_permission_to((T83*)(r337clients(C)),a1);
  1376. return R;
  1377. }
  1378. /*No:CST_ATT_REAL.base_class*/
  1379. /*No:CST_ATT_REAL.value_mem*/
  1380.  
  1381.  
  1382. T0* r195start_position(T195* C){
  1383. T0* R=NULL;
  1384. R=X65start_position(/*(IRF4.6first_name*/r67item(((T67*)((C)->_names/*8*/)),1)/*)*/);
  1385. return R;
  1386. }
  1387.  
  1388.  
  1389. T6 r195is_merge_with(T195* C,T0* a1,T0* a2){
  1390. T6 R=0;
  1391. R=1;
  1392. /*[IF*/
  1393. if(((C)->_result_type/*20*/)!=((void*)(X75result_type(a1)))){
  1394. /*[IF*/
  1395. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X75result_type(a1))==((void*)(NULL)))){
  1396. R=0;
  1397. }
  1398. /*FI]*/
  1399. }
  1400. /*FI]*/
  1401. /*[IF*/
  1402. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X75arguments(a1)))){
  1403. /*[IF*/
  1404. {/*AT*/R=0;
  1405. }
  1406. /*FI]*/
  1407. }
  1408. /*FI]*/
  1409. /*[IF*/
  1410. if(R){
  1411. /*[IF*/
  1412. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1413. R=X62is_a_in((C)->_result_type/*20*/,X75result_type(a1),a2);
  1414. }
  1415. /*FI]*/
  1416. /*[IF*/
  1417. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  1418. R=r171is_a_in((T171*)(/*(IRF4.1arguments*/NULL/*)*/),X75arguments(a1),a2);
  1419. }
  1420. /*FI]*/
  1421. /*[IF*/
  1422. if(!(R)){
  1423. R=1;
  1424. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC37explanation))))->_count)=(0);
  1425. /*]*/
  1426. /*[IRF3.3clear*/((((T38*)((T38*)(oBC37positions))))->_upper)=(-(1));
  1427. /*]*/
  1428. /*]*/
  1429. /*[IF*/
  1430. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1431. R=X62is_a_in(X75result_type(a1),(C)->_result_type/*20*/,a2);
  1432. }
  1433. /*FI]*/
  1434. /*[IF*/
  1435. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  1436. R=r171is_a_in((T171*)(X75arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
  1437. }
  1438. /*FI]*/
  1439. }
  1440. /*FI]*/
  1441. }
  1442. /*FI]*/
  1443. /*[IF*/
  1444. if(R){
  1445. r195merge_header_comments(C,a1);
  1446. }
  1447. /*FI]*/
  1448. return R;
  1449. }
  1450. /*No:CST_ATT_REAL.first_name*/
  1451. /*No:CST_ATT_REAL.em1*/
  1452. /*No:CST_ATT_REAL.header_comment*/
  1453.  
  1454.  
  1455. void r195pretty_print_profile(T195* C){
  1456. r195pretty_print_names(C);
  1457. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  1458. /*]*/
  1459. /*[IRF3.1pretty_print_arguments*//*]*/
  1460. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(3);
  1461. /*]*/
  1462. /*[IF*/
  1463. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1464. r310put_string((T310*)(oBC11fmt),((T0*)ms75_186));
  1465. X62pretty_print((C)->_result_type/*20*/);
  1466. }
  1467. /*FI]*/
  1468. }
  1469. /*No:CST_ATT_REAL.names*/
  1470. /*No:CST_ATT_REAL.result_type*/
  1471. /*No:CST_ATT_REAL.code_require*/
  1472. /*No:CST_ATT_REAL.make_e_feature*/
  1473.  
  1474.  
  1475. void r195add_into(T195* C,T0* a1){
  1476. T0* _fn=NULL;
  1477. T2 _i=0;
  1478. C->_base_class=r39base_class((T39*)(X65start_position(r67item((T67*)((C)->_names/*8*/),1))));
  1479. _i=1;
  1480. while (!((_i)>(r67count((T67*)((C)->_names/*8*/))))) {
  1481. _fn=r67item((T67*)((C)->_names/*8*/),_i);
  1482. /*[IF*/
  1483. if(r74has(((T74*)a1),X65to_key(_fn))){
  1484. _fn=/*X75first_name*/((T0*)/*(IRF4.6first_name*/r67item(((T67*)(((T183*)(r74at(((T74*)a1),X65to_key(_fn))))->_names/*8*/)),1)/*)*/);
  1485. r37add_position(X65start_position(_fn));
  1486. r37add_position(X65start_position(r67item((T67*)((C)->_names/*8*/),_i)));
  1487. r37error((T37*)(oBC11eh),((T0*)ms75_41905));
  1488. /*[IRF3.6append*/{T0* b1=X65to_string(_fn);
  1489. r7append((T7*)(oBC37explanation),b1);
  1490. }/*]*/
  1491. r37error((T37*)(oBC11eh),((T0*)ms12_47));
  1492. }
  1493. else{
  1494. r74put(((T74*)a1),(T0*)C,X65to_key(_fn));
  1495. }
  1496. /*FI]*/
  1497. _i=(_i)+(1);
  1498. }
  1499. }
  1500.  
  1501.  
  1502. T6 r195can_hide(T195* C,T0* a1,T0* a2){
  1503. T6 R=0;
  1504. /*[IF*/
  1505. if(((C)->_result_type/*20*/)!=((void*)(X75result_type(a1)))){
  1506. /*[IF*/
  1507. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X75result_type(a1))==((void*)(NULL)))){
  1508. r37add_position(X75start_position(a1));
  1509. r195error(r195start_position(C),((T0*)ms75_64647));
  1510. }
  1511. /*FI]*/
  1512. }
  1513. /*FI]*/
  1514. /*[IF*/
  1515. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X75arguments(a1)))){
  1516. /*[IF*/
  1517. {/*AT*/r37add_position(X75start_position(a1));
  1518. r195error(r195start_position(C),((T0*)ms75_83182));
  1519. }
  1520. /*FI]*/
  1521. }
  1522. /*FI]*/
  1523. /*[IF*/
  1524. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1525. /*[IF*/
  1526. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1527. /*[IF*/
  1528. if(!(X62is_a_in((C)->_result_type/*20*/,X75result_type(a1),a2))){
  1529. /*[IRF3.6append*/{T0* b1=((T0*)ms75_54285);
  1530. r7append((T7*)(oBC37explanation),b1);
  1531. }/*]*/
  1532. /*[IRF3.6append*/{T0* b1=X62run_time_mark((((T313*)a2))->_current_type/*0*/);
  1533. r7append((T7*)(oBC37explanation),b1);
  1534. }/*]*/
  1535. r37error((T37*)(oBC11eh),((T0*)ms12_47));
  1536. }
  1537. /*FI]*/
  1538. }
  1539. /*FI]*/
  1540. }
  1541. /*FI]*/
  1542. /*[IF*/
  1543. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1544. /*[IF*/
  1545. /*AF*//*AE*/
  1546. /*FI]*/
  1547. }
  1548. /*FI]*/
  1549. R=(/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
  1550. /*[IF*/
  1551. if(R){
  1552. r195merge_header_comments(C,a1);
  1553. }
  1554. /*FI]*/
  1555. return R;
  1556. }
  1557. /*No:CST_ATT_REAL.ensure_assertion*/
  1558.  
  1559.  
  1560. T0* r195try_to_undefine(T195* C,T0* a1,T0* a2){
  1561. T0* R=NULL;
  1562. T0* _fn2=NULL;
  1563. r37add_position(X65start_position(a1));
  1564. _fn2=r67feature_name((T67*)((C)->_names/*8*/),X65to_key(a1));
  1565. /*[IF*/
  1566. if((_fn2)!=((void*)(NULL))){
  1567. X65undefine_in(_fn2,a2);
  1568. }
  1569. /*FI]*/
  1570. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC37explanation))))->_count)=(0);
  1571. /*]*/
  1572. /*[IRF3.3clear*/((((T38*)((T38*)(oBC37positions))))->_upper)=(-(1));
  1573. /*]*/
  1574. /*]*/
  1575. R=r195try_to_undefine_aux(C,a1,a2);
  1576. /*[IF*/
  1577. if((R)!=((void*)(NULL))){
  1578. /*X269set_clients*//*[IRF3.3set_clients*/((((T272*)(((T272*)R))))->_clients)=((C)->_clients/*16*/);
  1579. /*]*/
  1580. r195merge_header_comments(C,R);
  1581. }
  1582. else{
  1583. r41fatal_undefine(((T41*)a2),a1);
  1584. }
  1585. /*FI]*/
  1586. return R;
  1587. }
  1588. /*No:CST_ATT_REAL.is_deferred*/
  1589. /*No:CST_ATT_REAL.set_clients*/
  1590. /*No:CST_ATT_REAL.value*/
  1591. /*No:CST_ATT_REAL.nb_errors*/
  1592.  
  1593.  
  1594. T0* r195to_run_feature(T195* C,T0* a1,T0* a2){
  1595. T0* R=NULL;
  1596. T0* _rc=NULL;
  1597. _rc=X62run_class(a1);
  1598. R=r313at(((T313*)_rc),a2);
  1599. if(NULL!=(R))switch(((T0*)R)->id) {
  1600. case 325: 
  1601. break;
  1602. default:
  1603. R=NULL;
  1604. };/*[IF*/
  1605. if((R)==((void*)(NULL))){
  1606. {T325*n=malloc(sizeof(*n));
  1607. *n=M325;
  1608. r325make(n,a1,a2,(T0*)C);
  1609. R=(T0*)n;
  1610. }
  1611. }
  1612. /*FI]*/
  1613. return R;
  1614. }
  1615.  
  1616.  
  1617. void r195merge_header_comments(T195* C,T0* a1){
  1618. /*[IF*/
  1619. if(((T42*)(oBC11small_eiffel))->_short_flag/*0*/){
  1620. /*[IF*/
  1621. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  1622. C->_header_comment=/*X75header_comment*/((T0*)(((T183*)a1))->_header_comment/*12*/);
  1623. }
  1624.  else if((/*X75header_comment*/((T0*)(((T183*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  1625. X75set_header_comment(a1,(C)->_header_comment/*12*/);
  1626. }
  1627. /*FI]*/
  1628. }
  1629. /*FI]*/
  1630. }
  1631. /*No:CST_ATT_REAL.arguments*/
  1632. /*No:CST_ATT_REAL.require_assertion*/
  1633. /*No:CST_ATT_REAL.pretty_print_arguments*/
  1634.  
  1635.  
  1636. T0* r195try_to_undefine_aux(T195* C,T0* a1,T0* a2){
  1637. T0* R=NULL;
  1638. r37add_position(r195start_position(C));
  1639. r195error(X65start_position(a1),((T0*)ms185_99414));
  1640. r41fatal_undefine(((T41*)a2),a1);
  1641. return R;
  1642. }
  1643. /*No:CST_ATT_REAL.fz_dot*/
  1644.  
  1645.  
  1646. void r195error(T0* a1,T0* a2){
  1647. r37add_position(a1);
  1648. r37error((T37*)(oBC11eh),a2);
  1649. }
  1650.  
  1651.  
  1652. void r195make(T195* C,T0* a1,T0* a2,T0* a3){
  1653. /*[IRF3.3make_e_feature*/((((T195*)(C)))->_names)=(a1);
  1654. /*]*/
  1655. C->_result_type=a2;
  1656. C->_value_mem=a3;
  1657. }
  1658.  
  1659.  
  1660. void r195pretty_print_names(T195* C){
  1661. T2 _i=0;
  1662. _i=1;
  1663. X65declaration_pretty_print(r67item((T67*)((C)->_names/*8*/),_i));
  1664. _i=(_i)+(1);
  1665. while (!((_i)>(r67count((T67*)((C)->_names/*8*/))))) {
  1666. r310put_string((T310*)(oBC11fmt),((T0*)ms75_158));
  1667. X65declaration_pretty_print(r67item((T67*)((C)->_names/*8*/),_i));
  1668. _i=(_i)+(1);
  1669. }
  1670. }
  1671.  
  1672.  
  1673. void r195pretty_print(T195* C){
  1674. r195pretty_print_profile(C);
  1675. r195pretty_tail(C);
  1676. r310put_character((T310*)(oBC11fmt),'\73');
  1677. /*[IF*/
  1678. if(((C)->_header_comment/*12*/)!=((void*)(NULL))){
  1679. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  1680. /*]*/
  1681. r310indent((T310*)(oBC11fmt));
  1682. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(1);
  1683. /*]*/
  1684. r64pretty_print((T64*)((C)->_header_comment/*12*/));
  1685. }
  1686. else{
  1687. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(1);
  1688. /*]*/
  1689. }
  1690. /*FI]*/
  1691. }
  1692.  
  1693.  
  1694. void r195collect_for(T2 a1){
  1695. T0* _er=NULL;
  1696. /*[IF*/
  1697. if((a1)==(1)){
  1698. _er=/*(IRF4.1require_assertion*/NULL/*)*/;
  1699. /*[IF*/
  1700. if((_er)!=((void*)(NULL))){
  1701. /*[IF*/
  1702. if(!(r332fast_has((T332*)(oBC75require_collector),_er))){
  1703. r332add_last((T332*)(oBC75require_collector),_er);
  1704. }
  1705. /*FI]*/
  1706. }
  1707. /*FI]*/
  1708. }
  1709. else{
  1710. /*[IF*/
  1711. /*AF*//*AE*/
  1712. /*FI]*/
  1713. }
  1714. /*FI]*/
  1715. }
  1716. /*No:CST_ATT_REAL.set_header_comment*/
  1717.  
  1718.  
  1719. void r195pretty_tail(T195* C){
  1720. r310put_string((T310*)(oBC11fmt),((T0*)ms184_1176));
  1721. /*[IRF3.6pretty_print*/{T157* C1=(T157*)(/*(IRF4.3value*/(C)->_value_mem/*24*//*)*/);
  1722. r310put_string((T310*)(oBC11fmt),(C1)->_to_string/*8*/);
  1723. }/*]*/
  1724. }
  1725. /*No:CST_ATT_REAL.clients*/
  1726.  
  1727.  
  1728. T0* r275run_require(T0* a1){
  1729. T0* R=NULL;
  1730. T0* _ct=NULL;
  1731. T0* _ar=NULL;
  1732. T0* _hc=NULL;
  1733. T0* _er=NULL;
  1734. T0* _r=NULL;
  1735. T2 _i=0;
  1736. r332clear((T332*)(oBC75require_collector));
  1737. _ct=/*X312current_type*/((T0*)(((T325*)a1))->_current_type/*4*/);
  1738. r41collect_for((T41*)(X62base_class(_ct)),1,/*X312name*/((T0*)(((T325*)a1))->_name/*16*/));
  1739. /*[IF*/
  1740. if(!(r332empty((T332*)(oBC75require_collector)))){
  1741. _i=1;
  1742. while (!((_i)>(((T332*)(oBC75require_collector))->_upper/*8*/))) {
  1743. _er=r332item((T332*)(oBC75require_collector),_i);
  1744. _hc=(((T271*)_er))->_header_comment/*4*/;
  1745. /*[IF*/
  1746. if(!(/*(IRF4.7empty*/((((T271*)_er))->_list/*8*/)==(NULL)/*)*/)){
  1747. _r=r275runnable((((T271*)_er))->_list/*8*/,_ct,a1);
  1748. /*[IF*/
  1749. if((_r)!=((void*)(NULL))){
  1750. {T271*n=malloc(sizeof(*n));
  1751. *n=M271;
  1752. r271make_runnable(n,_r,_ct,a1);
  1753. _er=(T0*)n;
  1754. }
  1755. /*[IRF3.3set_header_comment*/((((T271*)(((T271*)_er))))->_header_comment)=(_hc);
  1756. /*]*/
  1757. /*[IF*/
  1758. if((_ar)==((void*)(NULL))){
  1759. _ar=se_ma332(1,
  1760. _er);
  1761. }
  1762. else{
  1763. r332add_last(((T332*)_ar),_er);
  1764. }
  1765. /*FI]*/
  1766. }
  1767. /*FI]*/
  1768. }
  1769. /*FI]*/
  1770. _i=(_i)+(1);
  1771. }
  1772. /*[IF*/
  1773. if((_ar)!=((void*)(NULL))){
  1774. {T334*n=malloc(sizeof(*n));
  1775. *n=M334;
  1776. /*[IRF3.3make*/((((T334*)(n)))->_list)=(_ar);
  1777. /*]*/
  1778. R=(T0*)n;
  1779. }
  1780. }
  1781. /*FI]*/
  1782. }
  1783. /*FI]*/
  1784. return R;
  1785. }
  1786. /*No:EXTERNAL_PROCEDURE.base_class*/
  1787.  
  1788.  
  1789. void r275set_rescue_compound(T275* C,T0* a1){
  1790. /*[IF*/
  1791. if((a1)!=((void*)(NULL))){
  1792. r37add_position(r200start_position(((T200*)a1)));
  1793. }
  1794. else{
  1795. r37add_position(r275start_position(C));
  1796. }
  1797. /*FI]*/
  1798. /*[IRF3.6append*/{T0* b1=((T0*)ms274_126759);
  1799. r7append((T7*)(oBC37explanation),b1);
  1800. }/*]*/
  1801. r37print_as_fatal_error((T37*)(oBC11eh));
  1802. }
  1803.  
  1804.  
  1805. T0* r275start_position(T275* C){
  1806. T0* R=NULL;
  1807. R=X65start_position(/*(IRF4.6first_name*/r67item(((T67*)((C)->_names/*8*/)),1)/*)*/);
  1808. return R;
  1809. }
  1810.  
  1811.  
  1812. T6 r275is_merge_with(T275* C,T0* a1,T0* a2){
  1813. T6 R=0;
  1814. R=1;
  1815. /*[IF*/
  1816. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X75result_type(a1)))){
  1817. /*[IF*/
  1818. {/*AT*/R=0;
  1819. }
  1820. /*FI]*/
  1821. }
  1822. /*FI]*/
  1823. /*[IF*/
  1824. if(((C)->_arguments/*20*/)!=((void*)(X75arguments(a1)))){
  1825. /*[IF*/
  1826. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X75arguments(a1))==((void*)(NULL)))){
  1827. R=0;
  1828. }
  1829.  else if((/*(IRF4.6count*/(((T175*)(((T171*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T175*)(((T171*)(X75arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  1830. R=0;
  1831. }
  1832. /*FI]*/
  1833. }
  1834. /*FI]*/
  1835. /*[IF*/
  1836. if(R){
  1837. /*[IF*/
  1838. /*AF*//*AE*/
  1839. /*FI]*/
  1840. /*[IF*/
  1841. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  1842. R=r171is_a_in((T171*)((C)->_arguments/*20*/),X75arguments(a1),a2);
  1843. }
  1844. /*FI]*/
  1845. /*[IF*/
  1846. if(!(R)){
  1847. R=1;
  1848. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC37explanation))))->_count)=(0);
  1849. /*]*/
  1850. /*[IRF3.3clear*/((((T38*)((T38*)(oBC37positions))))->_upper)=(-(1));
  1851. /*]*/
  1852. /*]*/
  1853. /*[IF*/
  1854. /*AF*//*AE*/
  1855. /*FI]*/
  1856. /*[IF*/
  1857. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  1858. R=r171is_a_in((T171*)(X75arguments(a1)),(C)->_arguments/*20*/,a2);
  1859. }
  1860. /*FI]*/
  1861. }
  1862. /*FI]*/
  1863. }
  1864. /*FI]*/
  1865. /*[IF*/
  1866. if(R){
  1867. r275merge_header_comments(C,a1);
  1868. }
  1869. /*FI]*/
  1870. return R;
  1871. }
  1872.  
  1873.  
  1874. T0* r275runnable(T0* a1,T0* a2,T0* a3){
  1875. T0* R=NULL;
  1876. T0* _a=NULL;
  1877. T2 _i=0;
  1878. /*[IF*/
  1879. if(!(r88empty(((T88*)a1)))){
  1880. R=r88twin(((T88*)a1));
  1881. _i=(((T88*)R))->_upper/*8*/;
  1882. while (!((_i)==(0))) {
  1883. r42push((T42*)(oBC11small_eiffel),a3);
  1884. _a=r85to_runnable((T85*)(r88item(((T88*)R),_i)),a2);
  1885. /*[IF*/
  1886. if((_a)==((void*)(NULL))){
  1887. r275error(r85start_position((T85*)(r88item(((T88*)R),_i))),((T0*)ms12_14266));
  1888. }
  1889. else{
  1890. /*[IRF3.6put*/{T88* C1=((T88*)R);
  1891. T0* b1=_a;
  1892. T2 b2=_i;
  1893. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  1894. }/*]*/
  1895. }
  1896. /*FI]*/
  1897. r42pop((T42*)(oBC11small_eiffel));
  1898. _i=(_i)-(1);
  1899. }
  1900. }
  1901. /*FI]*/
  1902. return R;
  1903. }
  1904. /*No:EXTERNAL_PROCEDURE.first_name*/
  1905. /*No:EXTERNAL_PROCEDURE.em1*/
  1906. /*No:EXTERNAL_PROCEDURE.header_comment*/
  1907.  
  1908.  
  1909. void r275pretty_print_profile(T275* C){
  1910. r275pretty_print_names(C);
  1911. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  1912. /*]*/
  1913. r275pretty_print_arguments(C);
  1914. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(3);
  1915. /*]*/
  1916. /*[IF*/
  1917. /*AF*//*AE*/
  1918. /*FI]*/
  1919. }
  1920. /*No:EXTERNAL_PROCEDURE.names*/
  1921. /*No:EXTERNAL_PROCEDURE.fz_03*/
  1922.  
  1923.  
  1924. void r275make_external_routine(T275* C,T0* a1,T0* a2){
  1925. C->_native=a1;
  1926. C->_alias_string=a2;
  1927. }
  1928. /*No:EXTERNAL_PROCEDURE.result_type*/
  1929. /*No:EXTERNAL_PROCEDURE.code_require*/
  1930. /*No:EXTERNAL_PROCEDURE.make_e_feature*/
  1931.  
  1932.  
  1933. void r275add_into(T275* C,T0* a1){
  1934. T0* _fn=NULL;
  1935. T2 _i=0;
  1936. C->_base_class=r39base_class((T39*)(X65start_position(r67item((T67*)((C)->_names/*8*/),1))));
  1937. _i=1;
  1938. while (!((_i)>(r67count((T67*)((C)->_names/*8*/))))) {
  1939. _fn=r67item((T67*)((C)->_names/*8*/),_i);
  1940. /*[IF*/
  1941. if(r74has(((T74*)a1),X65to_key(_fn))){
  1942. _fn=/*X75first_name*/((T0*)/*(IRF4.6first_name*/r67item(((T67*)(((T183*)(r74at(((T74*)a1),X65to_key(_fn))))->_names/*8*/)),1)/*)*/);
  1943. r37add_position(X65start_position(_fn));
  1944. r37add_position(X65start_position(r67item((T67*)((C)->_names/*8*/),_i)));
  1945. r37error((T37*)(oBC11eh),((T0*)ms75_41905));
  1946. /*[IRF3.6append*/{T0* b1=X65to_string(_fn);
  1947. r7append((T7*)(oBC37explanation),b1);
  1948. }/*]*/
  1949. r37error((T37*)(oBC11eh),((T0*)ms12_47));
  1950. }
  1951. else{
  1952. r74put(((T74*)a1),(T0*)C,X65to_key(_fn));
  1953. }
  1954. /*FI]*/
  1955. _i=(_i)+(1);
  1956. }
  1957. }
  1958.  
  1959.  
  1960. T6 r275can_hide(T275* C,T0* a1,T0* a2){
  1961. T6 R=0;
  1962. /*[IF*/
  1963. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X75result_type(a1)))){
  1964. /*[IF*/
  1965. {/*AT*/r37add_position(X75start_position(a1));
  1966. r275error(r275start_position(C),((T0*)ms75_64647));
  1967. }
  1968. /*FI]*/
  1969. }
  1970. /*FI]*/
  1971. /*[IF*/
  1972. if(((C)->_arguments/*20*/)!=((void*)(X75arguments(a1)))){
  1973. /*[IF*/
  1974. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X75arguments(a1))==((void*)(NULL)))){
  1975. r37add_position(X75start_position(a1));
  1976. r275error(r275start_position(C),((T0*)ms75_83182));
  1977. }
  1978.  else if((/*(IRF4.6count*/(((T175*)(((T171*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T175*)(((T171*)(X75arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  1979. r37add_position(X75start_position(a1));
  1980. r275error(r275start_position(C),((T0*)ms75_67155));
  1981. }
  1982. /*FI]*/
  1983. }
  1984. /*FI]*/
  1985. /*[IF*/
  1986. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1987. /*[IF*/
  1988. /*AF*//*AE*/
  1989. /*FI]*/
  1990. }
  1991. /*FI]*/
  1992. /*[IF*/
  1993. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  1994. /*[IF*/
  1995. if(((C)->_arguments/*20*/)!=((void*)(NULL))){
  1996. /*[IF*/
  1997. if(!(r171is_a_in((T171*)((C)->_arguments/*20*/),X75arguments(a1),a2))){
  1998. r37add_position(X75start_position(a1));
  1999. r37add_position(r275start_position(C));
  2000. /*[IRF3.6append*/{T0* b1=((T0*)ms75_54285);
  2001. r7append((T7*)(oBC37explanation),b1);
  2002. }/*]*/
  2003. /*[IRF3.6append*/{T0* b1=X62run_time_mark((((T313*)a2))->_current_type/*0*/);
  2004. r7append((T7*)(oBC37explanation),b1);
  2005. }/*]*/
  2006. r37error((T37*)(oBC11eh),((T0*)ms12_47));
  2007. }
  2008. /*FI]*/
  2009. }
  2010. /*FI]*/
  2011. }
  2012. /*FI]*/
  2013. R=(/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
  2014. /*[IF*/
  2015. if(R){
  2016. r275merge_header_comments(C,a1);
  2017. }
  2018. /*FI]*/
  2019. return R;
  2020. }
  2021. /*No:EXTERNAL_PROCEDURE.ensure_assertion*/
  2022.  
  2023.  
  2024. T0* r275run_ensure(T0* a1){
  2025. T0* R=NULL;
  2026. T0* _ct=NULL;
  2027. T0* _r=NULL;
  2028. r88clear((T88*)(oBC75assertion_collector));
  2029. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2030. ((((T331*)((T331*)(oBC75header_comment_memory))))->_item)=(_default_item);
  2031. }/*]*/
  2032. _ct=/*X312current_type*/((T0*)(((T325*)a1))->_current_type/*4*/);
  2033. r41collect_for((T41*)(X62base_class(_ct)),2,/*X312name*/((T0*)(((T325*)a1))->_name/*16*/));
  2034. _r=r275runnable(oBC75assertion_collector,_ct,a1);
  2035. /*[IF*/
  2036. if((_r)!=((void*)(NULL))){
  2037. {T199*n=malloc(sizeof(*n));
  2038. *n=M199;
  2039. r199make_runnable(n,_r,_ct,a1);
  2040. R=(T0*)n;
  2041. }
  2042. /*[IRF3.3set_header_comment*/((((T199*)(((T199*)R))))->_header_comment)=(((T331*)(oBC75header_comment_memory))->_item/*0*/);
  2043. /*]*/
  2044. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2045. ((((T331*)((T331*)(oBC75header_comment_memory))))->_item)=(_default_item);
  2046. }/*]*/
  2047. }
  2048. /*FI]*/
  2049. return R;
  2050. }
  2051.  
  2052.  
  2053. void r275check_obsolete(T275* C){
  2054. /*[IF*/
  2055. if(!(((T42*)(oBC11small_eiffel))->_short_flag/*0*/)){
  2056. /*[IF*/
  2057. if(((C)->_obsolete_mark/*24*/)!=((void*)(NULL))){
  2058. /*[IRF3.6append*/{T0* b1=((T0*)ms198_39396);
  2059. r7append((T7*)(oBC37explanation),b1);
  2060. }/*]*/
  2061. /*[IRF3.6append*/{T0* b1=((T154*)((C)->_obsolete_mark/*24*/))->_to_string/*8*/;
  2062. r7append((T7*)(oBC37explanation),b1);
  2063. }/*]*/
  2064. r275warning(r275start_position(C),((T0*)ms12_166));
  2065. }
  2066. /*FI]*/
  2067. }
  2068. /*FI]*/
  2069. }
  2070. /*No:EXTERNAL_PROCEDURE.fz_is*/
  2071.  
  2072.  
  2073. T0* r275try_to_undefine(T275* C,T0* a1,T0* a2){
  2074. T0* R=NULL;
  2075. T0* _fn2=NULL;
  2076. r37add_position(X65start_position(a1));
  2077. _fn2=r67feature_name((T67*)((C)->_names/*8*/),X65to_key(a1));
  2078. /*[IF*/
  2079. if((_fn2)!=((void*)(NULL))){
  2080. X65undefine_in(_fn2,a2);
  2081. }
  2082. /*FI]*/
  2083. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC37explanation))))->_count)=(0);
  2084. /*]*/
  2085. /*[IRF3.3clear*/((((T38*)((T38*)(oBC37positions))))->_upper)=(-(1));
  2086. /*]*/
  2087. /*]*/
  2088. R=r275try_to_undefine_aux(C,a1,a2);
  2089. /*[IF*/
  2090. if((R)!=((void*)(NULL))){
  2091. /*X269set_clients*//*[IRF3.3set_clients*/((((T272*)(((T272*)R))))->_clients)=((C)->_clients/*16*/);
  2092. /*]*/
  2093. r275merge_header_comments(C,R);
  2094. }
  2095. else{
  2096. r41fatal_undefine(((T41*)a2),a1);
  2097. }
  2098. /*FI]*/
  2099. return R;
  2100. }
  2101. /*No:EXTERNAL_PROCEDURE.is_deferred*/
  2102. /*No:EXTERNAL_PROCEDURE.set_clients*/
  2103. /*No:EXTERNAL_PROCEDURE.native*/
  2104. /*No:EXTERNAL_PROCEDURE.code_ensure*/
  2105. /*No:EXTERNAL_PROCEDURE.nb_errors*/
  2106.  
  2107.  
  2108. void r275make_routine(T275* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  2109. /*[IRF3.3make_e_feature*/((((T275*)(C)))->_names)=(a1);
  2110. /*]*/
  2111. C->_header_comment=a4;
  2112. C->_arguments=a2;
  2113. C->_obsolete_mark=a3;
  2114. C->_require_assertion=a5;
  2115. }
  2116.  
  2117.  
  2118. T0* r275to_run_feature(T275* C,T0* a1,T0* a2){
  2119. T0* R=NULL;
  2120. r275check_obsolete(C);
  2121. {T335*n=malloc(sizeof(*n));
  2122. *n=M335;
  2123. r335make(n,a1,a2,(T0*)C);
  2124. R=(T0*)n;
  2125. }
  2126. return R;
  2127. }
  2128.  
  2129.  
  2130. void r275merge_header_comments(T275* C,T0* a1){
  2131. /*[IF*/
  2132. if(((T42*)(oBC11small_eiffel))->_short_flag/*0*/){
  2133. /*[IF*/
  2134. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  2135. C->_header_comment=/*X75header_comment*/((T0*)(((T183*)a1))->_header_comment/*12*/);
  2136. }
  2137.  else if((/*X75header_comment*/((T0*)(((T183*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  2138. X75set_header_comment(a1,(C)->_header_comment/*12*/);
  2139. }
  2140. /*FI]*/
  2141. }
  2142. /*FI]*/
  2143. }
  2144. /*No:EXTERNAL_PROCEDURE.arguments*/
  2145. /*No:EXTERNAL_PROCEDURE.require_assertion*/
  2146.  
  2147.  
  2148. void r275pretty_print_routine_body(T275* C){
  2149. r310keyword((T310*)(oBC11fmt),((T0*)ms274_11448));
  2150. X273pretty_print((C)->_native/*40*/);
  2151. /*[IF*/
  2152. if((!(r7is_equal((T7*)(r275external_c_name(C)),X65to_string(/*(IRF4.6first_name*/r67item(((T67*)((C)->_names/*8*/)),1)/*)*/))))||((r67count((T67*)((C)->_names/*8*/)))>(1))){
  2153. r310indent((T310*)(oBC11fmt));
  2154. r310keyword((T310*)(oBC11fmt),((T0*)ms274_2685));
  2155. r310put_character((T310*)(oBC11fmt),'\42');
  2156. r310put_string((T310*)(oBC11fmt),r275external_c_name(C));
  2157. r310put_character((T310*)(oBC11fmt),'\42');
  2158. }
  2159. /*FI]*/
  2160. }
  2161.  
  2162.  
  2163. T0* r275external_c_name(T275* C){
  2164. T0* R=NULL;
  2165. /*[IF*/
  2166. if(((C)->_alias_string/*44*/)==((void*)(NULL))){
  2167. R=X65to_string(/*(IRF4.6first_name*/r67item(((T67*)((C)->_names/*8*/)),1)/*)*/);
  2168. }
  2169. else{
  2170. R=(C)->_alias_string/*44*/;
  2171. }
  2172. /*FI]*/
  2173. return R;
  2174. }
  2175.  
  2176.  
  2177. void r275pretty_print_arguments(T275* C){
  2178. /*[IF*/
  2179. if(((C)->_arguments/*20*/)!=((void*)(NULL))){
  2180. r171pretty_print((T171*)((C)->_arguments/*20*/));
  2181. }
  2182. /*FI]*/
  2183. }
  2184. /*No:EXTERNAL_PROCEDURE.pretty_print_rescue*/
  2185.  
  2186.  
  2187. void r275warning(T0* a1,T0* a2){
  2188. r37add_position(a1);
  2189. r37warning((T37*)(oBC11eh),a2);
  2190. }
  2191.  
  2192.  
  2193. T0* r275try_to_undefine_aux(T275* C,T0* a1,T0* a2){
  2194. T0* R=NULL;
  2195. {T270*n=malloc(sizeof(*n));
  2196. *n=M270;
  2197. r270from_effective(n,a1,(C)->_arguments/*20*/,(C)->_require_assertion/*28*/,(C)->_ensure_assertion/*32*/,a2);
  2198. R=(T0*)n;
  2199. }
  2200. return R;
  2201. }
  2202. /*No:EXTERNAL_PROCEDURE.set_ensure_assertion*/
  2203. /*No:EXTERNAL_PROCEDURE.fz_bad_assertion*/
  2204. /*No:EXTERNAL_PROCEDURE.fz_obsolete*/
  2205. /*No:EXTERNAL_PROCEDURE.fz_end*/
  2206. /*No:EXTERNAL_PROCEDURE.fz_dot*/
  2207. /*No:EXTERNAL_PROCEDURE.alias_string*/
  2208.  
  2209.  
  2210. void r275error(T0* a1,T0* a2){
  2211. r37add_position(a1);
  2212. r37error((T37*)(oBC11eh),a2);
  2213. }
  2214.  
  2215.  
  2216. void r275make(T275* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  2217. r275make_routine(C,a1,a2,a3,a4,a5);
  2218. r275make_external_routine(C,a6,a7);
  2219. }
  2220.  
  2221.  
  2222. void r275pretty_print_names(T275* C){
  2223. T2 _i=0;
  2224. _i=1;
  2225. X65declaration_pretty_print(r67item((T67*)((C)->_names/*8*/),_i));
  2226. _i=(_i)+(1);
  2227. while (!((_i)>(r67count((T67*)((C)->_names/*8*/))))) {
  2228. r310put_string((T310*)(oBC11fmt),((T0*)ms75_158));
  2229. X65declaration_pretty_print(r67item((T67*)((C)->_names/*8*/),_i));
  2230. _i=(_i)+(1);
  2231. }
  2232. }
  2233.  
  2234.  
  2235. void r275pretty_print(T275* C){
  2236. T0* _fn=NULL;
  2237. r310indent((T310*)(oBC11fmt));
  2238. r275pretty_print_profile(C);
  2239. r310keyword((T310*)(oBC11fmt),((T0*)ms12_446));
  2240. /*[IF*/
  2241. if(((C)->_obsolete_mark/*24*/)!=((void*)(NULL))){
  2242. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  2243. /*]*/
  2244. r310indent((T310*)(oBC11fmt));
  2245. r310keyword((T310*)(oBC11fmt),((T0*)ms12_10928));
  2246. r154pretty_print((T154*)((C)->_obsolete_mark/*24*/));
  2247. }
  2248. /*FI]*/
  2249. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  2250. /*]*/
  2251. r310indent((T310*)(oBC11fmt));
  2252. /*[IF*/
  2253. if(((C)->_header_comment/*12*/)!=((void*)(NULL))){
  2254. r64pretty_print((T64*)((C)->_header_comment/*12*/));
  2255. }
  2256. /*FI]*/
  2257. /*[IF*/
  2258. if(((C)->_require_assertion/*28*/)!=((void*)(NULL))){
  2259. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  2260. /*]*/
  2261. r271pretty_print((T271*)((C)->_require_assertion/*28*/));
  2262. }
  2263. /*FI]*/
  2264. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  2265. /*]*/
  2266. r310indent((T310*)(oBC11fmt));
  2267. r275pretty_print_routine_body(C);
  2268. /*[IF*/
  2269. if(((C)->_ensure_assertion/*32*/)!=((void*)(NULL))){
  2270. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  2271. /*]*/
  2272. r199pretty_print((T199*)((C)->_ensure_assertion/*32*/));
  2273. }
  2274. /*FI]*/
  2275. /*[IRF3.1pretty_print_rescue*//*]*/
  2276. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  2277. /*]*/
  2278. r310indent((T310*)(oBC11fmt));
  2279. r310keyword((T310*)(oBC11fmt),((T0*)ms12_951));
  2280. /*[IF*/
  2281. if((((C)->_end_comment/*36*/)!=((void*)(NULL)))&&(!(r64dummy((T64*)((C)->_end_comment/*36*/))))){
  2282. r64pretty_print((T64*)((C)->_end_comment/*36*/));
  2283. }
  2284.  else if(r310print_end_routine((T310*)(oBC11fmt))){
  2285. r310put_string((T310*)(oBC11fmt),((T0*)ms198_384));
  2286. _fn=/*(IRF4.6first_name*/r67item(((T67*)((C)->_names/*8*/)),1)/*)*/;
  2287. X65declaration_pretty_print(_fn);
  2288. }
  2289. /*FI]*/
  2290. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(1);
  2291. /*]*/
  2292. r310put_character((T310*)(oBC11fmt),'\n');
  2293. }
  2294.  
  2295.  
  2296. void r275collect_for(T275* C,T2 a1){
  2297. T0* _er=NULL;
  2298. /*[IF*/
  2299. if((a1)==(1)){
  2300. _er=(C)->_require_assertion/*28*/;
  2301. /*[IF*/
  2302. if((_er)!=((void*)(NULL))){
  2303. /*[IF*/
  2304. if(!(r332fast_has((T332*)(oBC75require_collector),_er))){
  2305. r332add_last((T332*)(oBC75require_collector),_er);
  2306. }
  2307. /*FI]*/
  2308. }
  2309. /*FI]*/
  2310. }
  2311. else{
  2312. /*[IF*/
  2313. if(((C)->_ensure_assertion/*32*/)!=((void*)(NULL))){
  2314. /*[IRF3.3set_item*/((((T331*)((T331*)(oBC75header_comment_memory))))->_item)=(((T199*)((C)->_ensure_assertion/*32*/))->_header_comment/*4*/);
  2315. /*]*/
  2316. r199add_into((T199*)((C)->_ensure_assertion/*32*/),oBC75assertion_collector);
  2317. }
  2318. /*FI]*/
  2319. }
  2320. /*FI]*/
  2321. }
  2322. /*No:EXTERNAL_PROCEDURE.end_comment*/
  2323.  
  2324.  
  2325. void r275set_header_comment(T275* C,T0* a1){
  2326. /*[IF*/
  2327. if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r32count(((T32*)((((T64*)a1))->_list/*4*/)))/*)*/)>(1))){
  2328. C->_end_comment=a1;
  2329. }
  2330. /*FI]*/
  2331. }
  2332. /*No:EXTERNAL_PROCEDURE.clients*/
  2333. /*No:EXTERNAL_PROCEDURE.obsolete_mark*/
  2334. /*No:IFTHEN.nb_errors*/
  2335. /*No:IFTHEN.expression*/
  2336. /*No:IFTHEN.fz_is_not_boolean*/
  2337. /*No:IFTHEN.then_compound*/
  2338.  
  2339.  
  2340. T0* r210to_runnable(T210* C,T0* a1){
  2341. T0* R=NULL;
  2342. T0* _t=NULL;
  2343. T0* _tc=NULL;
  2344. T0* _e=NULL;
  2345. /*[IF*/
  2346. if(((C)->_current_type/*8*/)==((void*)(NULL))){
  2347. C->_current_type=a1;
  2348. _e=X89to_runnable((C)->_expression/*0*/,a1);
  2349. /*[IF*/
  2350. if((_e)==((void*)(NULL))){
  2351. r210error(X89start_position((C)->_expression/*0*/),((T0*)ms210_32982));
  2352. }
  2353. else{
  2354. C->_expression=_e;
  2355. _t=X89result_type((C)->_expression/*0*/);
  2356. /*[IF*/
  2357. if(!(X62is_boolean(_t))){
  2358. /*[IRF3.6append*/{T0* b1=((T0*)ms210_75563);
  2359. r7append((T7*)(oBC37explanation),b1);
  2360. }/*]*/
  2361. r37add_type(X89result_type((C)->_expression/*0*/),((T0*)ms12_18320));
  2362. r37add_position(X89start_position((C)->_expression/*0*/));
  2363. r37print_as_error((T37*)(oBC11eh));
  2364. }
  2365. /*FI]*/
  2366. }
  2367. /*FI]*/
  2368. /*[IF*/
  2369. if(((C)->_then_compound/*4*/)!=((void*)(NULL))){
  2370. _tc=r200to_runnable((T200*)((C)->_then_compound/*4*/),a1);
  2371. /*[IF*/
  2372. if((_tc)!=((void*)(NULL))){
  2373. C->_then_compound=_tc;
  2374. }
  2375. /*FI]*/
  2376. }
  2377. /*FI]*/
  2378. /*[IF*/
  2379. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  2380. R=(T0*)C;
  2381. }
  2382. /*FI]*/
  2383. }
  2384. else{
  2385. {T210*n=malloc(sizeof(*n));
  2386. *n=M210;
  2387. r210make(n,(C)->_expression/*0*/,(C)->_then_compound/*4*/);
  2388. R=(T0*)n;
  2389. }
  2390. R=r210to_runnable(((T210*)R),a1);
  2391. }
  2392. /*FI]*/
  2393. return R;
  2394. }
  2395. /*No:IFTHEN.current_type*/
  2396.  
  2397.  
  2398. void r210error(T0* a1,T0* a2){
  2399. r37add_position(a1);
  2400. r37error((T37*)(oBC11eh),a2);
  2401. }
  2402.  
  2403.  
  2404. void r210make(T210* C,T0* a1,T0* a2){
  2405. C->_expression=a1;
  2406. C->_then_compound=a2;
  2407. }
  2408.  
  2409.  
  2410. void r210pretty_print(T210* C){
  2411. r310level_incr((T310*)(oBC11fmt));
  2412. /*[IRF3.3set_semi_colon_flag*/((((T310*)((T310*)(oBC11fmt))))->_semi_colon_flag)=(0);
  2413. /*]*/
  2414. X89pretty_print((C)->_expression/*0*/);
  2415. r310level_decr((T310*)(oBC11fmt));
  2416. r310keyword((T310*)(oBC11fmt),((T0*)ms210_1764));
  2417. r310indent((T310*)(oBC11fmt));
  2418. /*[IF*/
  2419. if(((C)->_then_compound/*4*/)!=((void*)(NULL))){
  2420. r200pretty_print((T200*)((C)->_then_compound/*4*/));
  2421. }
  2422. /*FI]*/
  2423. }
  2424.  
  2425.